#!/usr/bin/env python3
"""
直接MySQL数据库迁移脚本
"""

from flask import Flask
from tools.db import create_database, init_db
from models.models import *
import sys

def migrate_to_mysql():
    """直接迁移到MySQL"""
    print("🚀 开始MySQL数据库迁移")
    print("=" * 50)
    
    try:
        # 1. 创建数据库
        print("📊 创建MySQL数据库...")
        if not create_database():
            print("❌ 数据库创建失败")
            return False
        print("✅ 数据库创建成功")
        
        # 2. 创建Flask应用并初始化数据库
        print("🔧 初始化Flask应用...")
        app = Flask(__name__)
        db = init_db(app, use_mysql=True)
        print("✅ Flask应用初始化成功")
        
        # 3. 显示创建的表
        print("📋 数据库表创建完成")
        with app.app_context():
            inspector = db.inspect(db.engine)
            tables = inspector.get_table_names()
            print(f"✅ 成功创建 {len(tables)} 个表:")
            for table in tables:
                print(f"   - {table}")
        
        print("\n🎉 MySQL数据库迁移完成！")
        print("📊 数据库信息:")
        print("   ✅ 数据库: management_system")
        print("   ✅ 用户: root")
        print("   ✅ 密码: 12345")
        print("   ✅ 主机: localhost:3306")
        print("   ✅ 字符集: utf8mb4")
        
        return True
        
    except Exception as e:
        print(f"❌ 迁移失败: {str(e)}")
        print("🔧 请检查:")
        print("   1. MySQL服务是否正在运行")
        print("   2. 用户名和密码是否正确")
        print("   3. 是否有创建数据库的权限")
        return False

if __name__ == '__main__':
    success = migrate_to_mysql()
    if success:
        print("\n🚀 迁移完成，可以启动应用:")
        print("   python app_with_redis.py")
    else:
        print("\n❌ 迁移失败")
        sys.exit(1)
